package main

import (
	"fmt"
	"google.golang.org/grpc/codes"
	"google.golang.org/grpc/status"
)

type request struct {
	Name string
}

// deprecated: 已经过期
func testError(r request) error {
	// 不可行
	//return status.New(codes.InvalidArgument, "非法参数")

	// 可行
	//return status.Error(codes.InvalidArgument, "记录未找到")
	return status.Errorf(codes.NotFound, "记录未找到:%s", r.Name)
}

func main() {
	err := testError(request{Name: "124"})
	s, ok := status.FromError(err)
	if !ok {
		panic("解析error失败")
	}
	fmt.Println(s.Message())
	fmt.Println(s.Code())

}
